package river_city_ransom.decorators;

import java.util.List;

import exceptions.ComposantError;
import river_city_ransom.services.Bloc;
import river_city_ransom.services.Dimensions;
import river_city_ransom.services.Objet;
import river_city_ransom.services.Position;
import river_city_ransom.services.Terrain;

public class Terrain_D implements Terrain {

	private Terrain delegate;
	
	public Terrain_D(Terrain delegate){
		this.delegate = delegate;
	}
	
	public Terrain delegate(){
		return delegate;
	}
	
	@Override
	public boolean equals(Object o) {
		return delegate().equals(o);
	}
	
	@Override
	public String toString() {
		return delegate().toString();
	}
	
	/** _________________________________________________________ OBSERVATORS */
	@Override
	public Dimensions dimensions() {
		return delegate().dimensions();
	}

	@Override
	public List<Bloc> blocs() {
		return delegate().blocs();
	}

	@Override
	public Bloc bloc(Position p) throws ComposantError {
		return delegate().bloc(p);
	}

	@Override
	public List<Objet> objets() {
		return delegate().objets();
	}

	/** ________________________________________________________ CONSTRUCTORS */
	@Override
	public void init(Dimensions d, List<Bloc> b, List<Objet> lo)
			throws ComposantError {
		delegate().init(d, b, lo);
	}

	/** ___________________________________________________________ OPERATORS */
	@Override
	public void setBloc(Bloc bloc) throws ComposantError{
		delegate().setBloc(bloc);
	}

	@Override
	public void delBloc(Bloc bloc)throws ComposantError {
		delegate().delBloc(bloc);
	}

	@Override
	public void addObjet(Objet o)throws ComposantError {
		delegate().addObjet(o);
	}

	@Override
	public void delObjet(Objet o)throws ComposantError {
		delegate().delObjet(o);
	}

}
